#ifndef __IDENTITY_POOL__
#define __IDENTITY_POOL__


#ifdef __cplusplus
extern "C" {
#endif

struct identity_pool;

typedef void* (*Ctor)();
typedef void (*Dtor)(void*);
struct identity_pool* identity_pool_new(int capacity, Ctor ctor, Dtor dtor);
void* identity_pool_get(struct identity_pool* pool);
int identity_pool_get_size(struct identity_pool* pool);
void identity_pool_put(struct identity_pool* pool, void* item);
void identity_pool_delete(struct identity_pool* pool);

#ifdef __cplusplus
}
#endif

#endif

